package utils

import (
	"fmt"
	"gitee.ltd/lxh/logger"
	"math"
	"strconv"
)

type mathUtil struct{}

func MathUtil() *mathUtil {
	return &mathUtil{}
}

func (m mathUtil) Sqrt(datas []float64, avg float64) float64 {
	if len(datas) == 0 {
		return 0
	}
	var aaa float64
	for _, d := range datas {
		co := d - avg
		aaa += co * co
	}
	d, err := strconv.ParseFloat(fmt.Sprintf("%.2f", math.Sqrt(aaa/float64(len(datas)))), 64)
	if err != nil {
		logger.Say.Errorf("生成标准差失败：%v", err)
		return 0
	}
	return d
}
